# 写函数，计算传入的字符串中数字，字⺟，空格，以及其他的个数

def str_num(str1):
    digit_num = 0
    space_num = 0
    al_num = 0
    other_num = 0
    for i in str1:
        if i.isdigit():
            digit_num += 1
        elif i.isalpha():
            al_num += 1
        elif i.isspace():
            space_num += 1
        else:
            other_num += 1
    print(f"字符串中数字的个数为：{digit_num}，字母的个数为：{al_num}，空格的个数为：{space_num}，其他字符的个数为：{other_num}")
str1 = '12345    aaaa、、、、'
str_num(str1)

# 写函数，判断用户传入的对象（字符串，列表，元组）长度是否大于5
def judge_len(st, lis, tup):
    st_len = len(st)
    lis_len = len(lis)
    tup_len = len(tup)
    if st_len > 5:
        print("字符串长度大于5")
    else:
        print("字符串长度小于5")
    if lis_len > 5:
        print("列表长度大于5")
    else:
        print("列表长度小于5")
    if tup_len > 5:
        print("元组长度大于5")
    else:
        print("元组长度小于5")
list1 = ['a','b','c']
tuple1 = (1,2,2,5,5,'aaa',['a','c'])
judge_len(str1,list1,tuple1)

# 写函数监测用户传入的对象（字符，列表，元组）的每一个元素是否有空内容
# def null_func(st, lis, tup):
#     for i in st:
#         if '' in i:
#             print('字符串有空元素')
#             break
#         else:
#             print('字符串没空元素')
#             break
#     for i in lis:
#         if '' in i:
#             print('列表有空元素')
#             break
#         else:
#             print('列表没空元素')
#             break
#     for i in tup:
#         if '' in i:
#             print('元组有空元素')
#             break
#         else:
#             print('元组没空元素')
#             break
#
# str2 = '    '
# list2 = ['','a']
# tuple2 = ('ab',['a','c'])
# null_func(str2,list2,tuple2)

# 写函数，检查传入列表的长度，如果大于2，那么仅仅保留前两个长度的内容，并将新内容返回给调用者
def new_list(lis):
    list_len = len(lis)
    newlist = []
    if list_len > 2:
        for i in range(2):
            newlist.append(lis[i])
    return newlist
list3 = ['hello','world','nihao']
print(new_list(list3))

# 写函数，检查获取传入列表或元组的所有奇数位索引对应的元素，并将其作为新列表返回给调用者
def odd_list(s):
    oddlist = []
    lenth = len(s)
    if lenth >= 2:
        oddlist.append(s[1])
    for i in range(3,lenth,2):
        oddlist.append(s[i])
    return oddlist

print(odd_list(list3))
print((odd_list(tuple1)))

